//
// Copyright (c) 2010 Alex Nesterenko
//

#ifndef NANE_DUMMYWINDOWSYSTEM_H
#   define NANE_DUMMYWINDOWSYSTEM_H

#   include "nane/WindowSystem/IWindowSystem.h"

namespace nane
{
    class DummyWindow
        : public IWindow
    {
    public:
        OSHandle getOSHandle() { return NULL; }
        void show() {}
        void updateMessages() {}
        void setMessageHandler( IWindowMessageHandler* _handler ) {}
    };

    class DummyWindowSystem
        : public IWindowSystem
    {
    public:
        DummyWindowSystem();
        ~DummyWindowSystem();

        bool initialize();
        void shutdown();

    public:
        IWindow* createWindow( const char* _title, uint32 _width, uint32 _height, uint32 _posX, uint32 _posY );
        void releaseWindow( IWindow* _window );
        uint32 getScreenWidth();
        uint32 getScreenHeight();

    private:
        DummyWindow m_dummyWindow;
    };
}   // namespace nane

#endif // NANE_DUMMYWINDOWSYSTEM_H
